const OSS = require('ali-oss');
const moment = require('moment');

/**
 *上传文件到oos服务器
 * @param f 文件
 * @param prefix 前缀
 */
export async function uploadOos(f, prefix) {
  const res = {
    code: 200,
    msg: '',
    url: ''
  };
  const client = new OSS({
    region: 'oss-cn-shenzhen',
    accessKeyId: 'LTAI5tADYknrzcgCodatngSe',
    accessKeySecret: 'w5Ob08b8zXyHJYztndUGSCPGudyoLI',
    bucket: 'anjunggl'
  });
  // 文件格式限制
  const suffix = f.name.substr(f.name.lastIndexOf('.'));
  const fileName = (f.name + '').split('.')[0];
  // 支持的文件格式
  // const fileTypes = '视频格式:.mp4 .avi .rmvb ' +
  //   '图片格式： .jpg .jpeg .gif .pdf'
  // if (fileTypes.indexOf(suffix) === -1) {
  //   res.code = 400
  //   res.msg = '暂不支持该文件格式!'
  //   return res
  // }

  // 文件大小限制
  if (f.size > 100 * 1000 * 1000) {
    res.code = 400;
    res.msg = '文件不得大于100M!';
    return res;
  }
  // 进度显示 开
  const obj = moment().format('YYYYMMDDTHHmmss');
  // 这里是生成文件名
  const storeAs = 'upload-file/' + prefix + '/' + fileName + '-' + obj + suffix; // 命名空间
  const result = await client.put(storeAs, f);
  // console.log('上传结果:  ', result)
  const code = result.res.statusCode;
  if (code === 200) {
    // // 去除多余字符
    // if (url && url.indexOf('?') !== -1) {
    //   url = url.toString().substring(0, url.indexOf('?'))
    // }
    res.url = result.url;
    return res;
  } else {
    // 进度显示 关
    res.code = 400;
    res.msg = '上传失败!';
    return res;
  }
}
